home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / libxml2 / libxml / debugXML.h < prev    next >
C/C++ Source or Header  |  2006-04-25  |  5KB  |  218 lines

  1. /*
  2.  * Summary: Tree debugging APIs
  3.  * Description: Interfaces to a set of routines used for debugging the tree
  4.  *              produced by the XML parser.
  5.  *
  6.  * Copy: See Copyright for the status of this software.
  7.  *
  8.  * Author: Daniel Veillard
  9.  */
  10.  
  11. #ifndef __DEBUG_XML__
  12. #define __DEBUG_XML__
  13. #include <stdio.h>
  14. #include <libxml/xmlversion.h>
  15. #include <libxml/tree.h>
  16.  
  17. #ifdef LIBXML_DEBUG_ENABLED
  18.  
  19. #include <libxml/xpath.h>
  20.  
  21. #ifdef __cplusplus
  22. extern "C" {
  23. #endif
  24.  
  25. /*
  26.  * The standard Dump routines.
  27.  */
  28. XMLPUBFUN void XMLCALL    
  29.     xmlDebugDumpString    (FILE *output,
  30.                  const xmlChar *str);
  31. XMLPUBFUN void XMLCALL    
  32.     xmlDebugDumpAttr    (FILE *output,
  33.                  xmlAttrPtr attr,
  34.                  int depth);
  35. XMLPUBFUN void XMLCALL    
  36.     xmlDebugDumpAttrList    (FILE *output,
  37.                  xmlAttrPtr attr,
  38.                  int depth);
  39. XMLPUBFUN void XMLCALL    
  40.     xmlDebugDumpOneNode    (FILE *output,
  41.                  xmlNodePtr node,
  42.                  int depth);
  43. XMLPUBFUN void XMLCALL
  44.     xmlDebugDumpNode    (FILE *output,
  45.                  xmlNodePtr node,
  46.                  int depth);
  47. XMLPUBFUN void XMLCALL
  48.     xmlDebugDumpNodeList    (FILE *output,
  49.                  xmlNodePtr node,
  50.                  int depth);
  51. XMLPUBFUN void XMLCALL
  52.     xmlDebugDumpDocumentHead(FILE *output,
  53.                  xmlDocPtr doc);
  54. XMLPUBFUN void XMLCALL
  55.     xmlDebugDumpDocument    (FILE *output,
  56.                  xmlDocPtr doc);
  57. XMLPUBFUN void XMLCALL    
  58.     xmlDebugDumpDTD        (FILE *output,
  59.                  xmlDtdPtr dtd);
  60. XMLPUBFUN void XMLCALL    
  61.     xmlDebugDumpEntities    (FILE *output,
  62.                  xmlDocPtr doc);
  63.  
  64. /****************************************************************
  65.  *                                *
  66.  *             Checking routines            *
  67.  *                                *
  68.  ****************************************************************/
  69.  
  70. XMLPUBFUN int XMLCALL
  71.     xmlDebugCheckDocument    (FILE * output,
  72.                  xmlDocPtr doc);
  73.  
  74. /****************************************************************
  75.  *                                *
  76.  *             XML shell helpers            *
  77.  *                                *
  78.  ****************************************************************/
  79.  
  80. XMLPUBFUN void XMLCALL    
  81.     xmlLsOneNode        (FILE *output, xmlNodePtr node);
  82. XMLPUBFUN int XMLCALL    
  83.     xmlLsCountNode        (xmlNodePtr node);
  84.  
  85. XMLPUBFUN const char * XMLCALL 
  86.     xmlBoolToText        (int boolval);
  87.  
  88. /****************************************************************
  89.  *                                *
  90.  *     The XML shell related structures and functions        *
  91.  *                                *
  92.  ****************************************************************/
  93.  
  94. #ifdef LIBXML_XPATH_ENABLED
  95. /**
  96.  * xmlShellReadlineFunc:
  97.  * @prompt:  a string prompt
  98.  *
  99.  * This is a generic signature for the XML shell input function.
  100.  *
  101.  * Returns a string which will be freed by the Shell.
  102.  */
  103. typedef char * (* xmlShellReadlineFunc)(char *prompt);
  104.  
  105. /**
  106.  * xmlShellCtxt:
  107.  *
  108.  * A debugging shell context.
  109.  * TODO: add the defined function tables.
  110.  */
  111. typedef struct _xmlShellCtxt xmlShellCtxt;
  112. typedef xmlShellCtxt *xmlShellCtxtPtr;
  113. struct _xmlShellCtxt {
  114.     char *filename;
  115.     xmlDocPtr doc;
  116.     xmlNodePtr node;
  117.     xmlXPathContextPtr pctxt;
  118.     int loaded;
  119.     FILE *output;
  120.     xmlShellReadlineFunc input;
  121. };
  122.  
  123. /**
  124.  * xmlShellCmd:
  125.  * @ctxt:  a shell context
  126.  * @arg:  a string argument
  127.  * @node:  a first node
  128.  * @node2:  a second node
  129.  *
  130.  * This is a generic signature for the XML shell functions.
  131.  *
  132.  * Returns an int, negative returns indicating errors.
  133.  */
  134. typedef int (* xmlShellCmd) (xmlShellCtxtPtr ctxt,
  135.                              char *arg,
  136.                  xmlNodePtr node,
  137.                  xmlNodePtr node2);
  138.  
  139. XMLPUBFUN void XMLCALL    
  140.     xmlShellPrintXPathError    (int errorType,
  141.                  const char *arg);
  142. XMLPUBFUN void XMLCALL    
  143.     xmlShellPrintXPathResult(xmlXPathObjectPtr list);
  144. XMLPUBFUN int XMLCALL    
  145.     xmlShellList        (xmlShellCtxtPtr ctxt,
  146.                  char *arg,
  147.                  xmlNodePtr node,
  148.                  xmlNodePtr node2);
  149. XMLPUBFUN int XMLCALL    
  150.     xmlShellBase        (xmlShellCtxtPtr ctxt,
  151.                  char *arg,
  152.                  xmlNodePtr node,
  153.                  xmlNodePtr node2);
  154. XMLPUBFUN int XMLCALL    
  155.     xmlShellDir        (xmlShellCtxtPtr ctxt,
  156.                  char *arg,
  157.                  xmlNodePtr node,
  158.                  xmlNodePtr node2);
  159. XMLPUBFUN int XMLCALL    
  160.     xmlShellLoad        (xmlShellCtxtPtr ctxt,
  161.                  char *filename,
  162.                  xmlNodePtr node,
  163.                  xmlNodePtr node2);
  164. #ifdef LIBXML_OUTPUT_ENABLED
  165. XMLPUBFUN void XMLCALL    
  166.     xmlShellPrintNode    (xmlNodePtr node);
  167. XMLPUBFUN int XMLCALL    
  168.     xmlShellCat        (xmlShellCtxtPtr ctxt,
  169.                  char *arg,
  170.                  xmlNodePtr node,
  171.                  xmlNodePtr node2);
  172. XMLPUBFUN int XMLCALL    
  173.     xmlShellWrite        (xmlShellCtxtPtr ctxt,
  174.                  char *filename,
  175.                  xmlNodePtr node,
  176.                  xmlNodePtr node2);
  177. XMLPUBFUN int XMLCALL    
  178.     xmlShellSave        (xmlShellCtxtPtr ctxt,
  179.                  char *filename,
  180.                  xmlNodePtr node,
  181.                  xmlNodePtr node2);
  182. #endif /* LIBXML_OUTPUT_ENABLED */
  183. #ifdef LIBXML_VALID_ENABLED
  184. XMLPUBFUN int XMLCALL    
  185.     xmlShellValidate    (xmlShellCtxtPtr ctxt,
  186.                  char *dtd,
  187.                  xmlNodePtr node,
  188.                  xmlNodePtr node2);
  189. #endif /* LIBXML_VALID_ENABLED */
  190. XMLPUBFUN int XMLCALL    
  191.     xmlShellDu        (xmlShellCtxtPtr ctxt,
  192.                  char *arg,
  193.                  xmlNodePtr tree,
  194.                  xmlNodePtr node2);
  195. XMLPUBFUN int XMLCALL    
  196.     xmlShellPwd        (xmlShellCtxtPtr ctxt,
  197.                  char *buffer,
  198.                  xmlNodePtr node,
  199.                  xmlNodePtr node2);
  200.  
  201. /*
  202.  * The Shell interface.
  203.  */
  204. XMLPUBFUN void XMLCALL    
  205.     xmlShell        (xmlDocPtr doc,
  206.                  char *filename,
  207.                  xmlShellReadlineFunc input,
  208.                  FILE *output);
  209.              
  210. #endif /* LIBXML_XPATH_ENABLED */
  211.  
  212. #ifdef __cplusplus
  213. }
  214. #endif
  215.  
  216. #endif /* LIBXML_DEBUG_ENABLED */
  217. #endif /* __DEBUG_XML__ */
  218.